1. Field of the Invention
This invention pertains in general to computer software compatibility, and more specifically to techniques for managing compatibility issues between software application installers.
2. Background Art
Computer system users frequently face compatibility problems when installing software on their computers. Software application installers have a unique problem of not being able to be updated or changed after the software has been released to the public. Typically, software application installers reside on a compact disc (CD) and are not “patchable” or cannot be modified once they have been distributed to the public. However, newer software application installers that are released can have unforeseen compatibility problems with older software application installers, which can often only be solved by expensive technical support calls or user work-around solutions.
A software application installer may have a bug, for example, that causes problems in the functionality of another previously installed software application. An install bug in a 2004 software application might affect the installation of a 2005 version of the software application. However, once the 2004 software application has been shipped to users, the bug cannot be easily fixed. Similarly, a bug in the new 2005 software application that was missed during testing may prevent the installation of the 2005 software over the 2004 software. Additionally, software bugs can cause compatibility problems between products that are different but share components (e.g., a firewall application and an antivirus application). With the growing number of permutations of software applications, it is inevitable that there will be many of these types of issues that software testing cannot prevent.
Some current installer technologies have a mechanism to prevent installation of older software applications over newer applications, but these technologies have several limitations. For example, these technologies may be somewhat effective in preventing an older version of a software application from installing over a newer version, but will be unable to handle compatibility problems between two products that are different but share some components (e.g., an antivirus software application and a firewall software application). These current installer technologies are also static and typically reside on CDs, and thus cannot be modified or “patched” in any way once the software application installer has been shipped to users. In addition, these current installer technologies are not very flexible or user-friendly. Instead of providing software applications with the opportunity to fix issues caused by incompatibilities, the installer technologies either allow the installation that will cause a problem or completely block the installation. User frustration results in either case.
Therefore, there is a need in the art for a technique that will allow effective management of compatibility issues between software application installers, that will permit problems to be resolved after the software application has been shipped, and that will allow the installation to attempt to correct the problem rather than just completely blocking the installation.